/*
 * @Author: Wang Shuo wangshuo@sgsimulation.com
 * @Date: 2024-09-06 14:33:28
 * @LastEditors: Wang Shuo wangshuo@sgsimulation.com
 * @LastEditTime: 2024-09-06 15:36:53
 * @FilePath: \SGFEM\DataStructure\FEM\Element\include\BeamCoordOptions.h
 */

#pragma once
#include <string>
#include <vector>

#include "DataStructure/Common/Constant.h"
#include "DataStructure/Common/DataStructureExport.h"
#include "DataStructure/Common/DataStructureNamespace.h"

SG_DATASTRUCTURE_FEM_NAMESPACE_OPEN
/** \enum CoordOptions
 * 坐标系选项,指定梁单元朝向，节点偏置向量所在坐标系
 */
enum BeamCoordOptions : SG::DataStructure::Common::I8
{
    OPTION_G = 0,  ///< 节点位移输出坐标系
    OPTION_B = 1,  ///< 全局坐标系
    OPTION_O = 2,  ///< 偏置坐标系
};

/**  @brief 获取梁朝向矢量， 节点1和节点2朝向矢量信息
 *
 * @return Orientation vector option 0=XYZ Basic, 1=XYZ Global, 2=Grid的实例
 */
DECLSPEC std::vector<BeamCoordOptions> GetBeamCoordOptions (SG::DataStructure::Common::I64 flag);

DECLSPEC SG::DataStructure::Common::I64 calcFlag (const std::string& flag);

SG_DATASTRUCTURE_FEM_NAMESPACE_CLOSE